import { getCategortAPI } from '@/apis/category'
import { onMounted, ref } from 'vue'
import { onBeforeRouteUpdate, useRoute } from 'vue-router'
export function useCategory() {
  // 获取面包屑的二级分类请求
  const categoryData = ref({})
  const route = useRoute()
  //如果给我从onBeforeRouteUpdate传了id 那就使用传的id 不然就默认使用当前的route.params.id（即路由不切换时使用默认的）
  const getCategory = async (id = route.params.id) => {
    // 如何在setup中获取路由参数 useRoute() -> route 等价于this.$route
    const res = await getCategortAPI(id)
    // console.log(res)
    categoryData.value = res.result
  }
  onMounted(() => {
    getCategory()
  })
  // 路由缓存优化 在路由发送变化时，只发送category请求 把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    // console.log('路由发送变化了')
    // 存在问题：使用最新的路由参数请求最新的分类数据  因为这里route.params.id是滞后的，拿不到最新的
    //解决方法 加 to（目标路由对象）
    // console.log(to)
    getCategory(to.params.id)
  })

  return {
    categoryData
  }
}
